# コミュニティガイド

Wailsのユーザ数は驚異的な速度で増えており、これを読んでいるあなたは、すでにコミュニティに参加する準備ができているかもしれません。 さあ... ようこそ!

## リソース

### 行動規範

[行動規範](./coc)は、私たちが参加する技術コミュニティを発展させていくための簡単なガイドになります。

### 最新情報の入手

- [公式Twitterアカウント](https://twitter.com/wailsapp)をフォローしてください。

### サポートを受ける

- [GitHub](https://github.com/wailsapp/wails) - バグの報告や機能のリクエストは、GitHubのイシューで行ってください。 その際、各リポジトリのイシューテンプレートで指定されているルールを順守してください。
- [Discord](https://discord.gg/JDdSxwjhGf) - Wailsの開発者たちが集ってリアルタイムにチャットをしている場所です。
- [QQ Group(中文)](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - 中国の開発者がコミュニケーションをするためのWailsグループで、他の開発者に助けを求めることができます。

### エコシステムの探索

- [The Awesome Wails Page](https://github.com/wailsapp/awesome-wails) - 素晴らしい人によって公開された素晴らしいリソースを見つけてみましょう。

## 貢献方法

Wailsはオープンソースであり、コミュニティ主導のプロジェクトです。 プロジェクトへ貢献していただける皆さんを歓迎します。 このドキュメントは、プロジェクトや開発プロセスに精通したい人を対象としています。

プロジェクトへの貢献方法はたくさんあります:

- 新しい機能の開発
- バグの修正
- テスト
- 機能のドキュメント化
- チュートリアルやガイドの執筆
- イシュー上で他者を助ける + ディスカッションボード

それぞれの貢献方法について、各セクションで説明します。 まず初めに、[Contributing to Wails](https://github.com/wailsapp/wails/discussions/1520)ディスカッションで自己紹介をしましょう。

### 新しい機能の開発

私たちは常に、Wailsへ新しい機能を組み込んでいき、プロジェクトでできることを増やしていきたいと考えています。 新しい機能を追加するプロセスは次のとおりです:

- "TODO"ラベルがついたenhancementチケットを選びます。 現時点での[バックログ](https://github.com/orgs/wailsapp/projects/1/views/1)から1つを選ぶことをお勧めしますが、何を選ぶかはあなた次第です。
- 開発を始める前に、チケットに以下の情報が含まれていることを確認してください:
  - 機能強化の目的
  - 機能強化の対象外となる範囲
  - 機能強化の対象となるプラットフォーム (特別な理由がない限り、ほぼすべての機能はクロスプラットフォーム対応でなければなりません)
- チケットにこれらの情報が含まれていない場合、チケットをオープンした人に、これらの情報をリクエストしてください。 プレースホルダーのチケットが作成され、より詳細な情報が必要となる場合もあります。
- あなたが当該チケットの機能を開発したい場合は、チケットにコメントをしてください。
- リポジトリをクローンし、`feature/<ticket_number>_<ticket_title>`の形式でブランチを作成してください。
- 新しい機能に関するドキュメントが必要となる場合がほとんどですので、変更の一環として、ドキュメントを追加または変更してください。
- 機能をテストする準備ができたら、プルリクエストのドラフトを作成してください。 プルリクエストの説明欄には、テストシナリオおよびチェックマーク付きのテストケースをリストアップしてください。これにより、何をテストすべきなのかを他の人が把握できるようになります。
- すべてのテストが完了したら、プルリクエストのステータスをドラフトから更新し、メッセージを残してください。

:::note
自分でチケットをオープンして作業することを止めはしませんが、すべての機能強化リクエストは、それが適切かどうかを審査されているという点に留意してください。 すべてのアイデアが採択されるわけでは無いため、まずは当該機能強化についてディスカッションすることを推奨します。
:::

:::warning
紐づくチケットが無い状態でオープンされたプルリクエストは、リジェクトされることがあります。
:::

### バグの修正

バグを修正するプロセスは次のとおりです:

- 現時点での[バックログ](https://github.com/orgs/wailsapp/projects/1/views/1)を確認し、修正するつもりのバグを選んでください。
- 開発を始める前に、チケットに以下の情報が含まれていることを確認してください:
- 影響のあるプラットフォームといった、イシューの対象範囲。
- バグの再現手順。 Sometimes bugs are opened that are not Wails issues and the onus is on the reporter to prove that it is a Wails issue with a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example)
- `wails doctor`の出力内容。
- バグを再現できるテスト。
- チケットにこれらの情報が含まれていない場合、チケットをオープンした人に、これらの情報をリクエストしてください。
- 修正作業を実施する旨を、チケットにコメントしてください。
- リポジトリをクローンし、`bugfix/<ticket_number>_<ticket_title>`の命名形式でブランチを作成してください。
- 修正をテストする準備ができたら、プルリクエストのドラフトを作成してください。 プルリクエストの説明欄には、テストシナリオおよびチェックマーク付きのテストケースをリストアップしてください。これにより、何をテストすべきなのかを他の人が把握できるようになります。
- すべてのテストが完了したら、プルリクエストのステータスをドラフトから更新し、メッセージを残してください。

:::note
自分でチケットをオープンして作業することを止めはしませんが、あなたの修正アプローチには副作用が発生する可能性もあるため、どのようなバグ修正であっても、議論をするようにしてください。
:::

:::warning
紐づくチケットが無い状態でオープンされたプルリクエストは、リジェクトされることがあります。
:::

### テスト

テストは、プロジェクトの品質を保つために極めて重要なものです。 実際に、テストがプロジェクトに役立つ場面はいくつかあります:

- ローカルマシンでバグが再現するかどうかのテスト
- プルリクエストの内容が正しく動作するかを確認するテスト

If you chose to test if someone's bug report is reproducible on your local system, then feel free to add a comment on the ticket confirming this with the output of `wails doctor`.

To test PRs, choose a PR to test and check if the PR description has the testing scenarios listed. If not, please ask the person who opened the PR to provide that list. Once you have determined a valid test scenario, please report your findings on the PR.

If you ever need more clarity or help on testing, please ask a question in the [Contributing to Wails](https://github.com/wailsapp/wails/discussions/1520) discussion or on slack.

### ドキュメント

This website is also the main documentation site for the project. Sometimes this gets out of date and needs some slight adjustments. Some of the documentation isn't written to the best standards either. Developing documentation is hard and so any contribution to this is greatly appreciated. Features without documentation are unfinished so to the project, it's _as important_ as the code.

We generally do not create tickets for updating documentation so if there is text you think should be updated or rephrased then feel free to submit a PR for that. This site is in the main repository under the `website` directory. We use [Docusaurus](https://docusaurus.io/) to create the site so there is plenty of existing documentation and tutorials around to get started.

To set up a local documentation development environment, do the following:

- [Install npm](https://docs.npmjs.com/cli/v8/configuring-npm/install)
- `cd website`
- `npm install`
- `npm run start`

After it has all installed and is running, you should see the site at [`http://localhost:3000`](http://localhost:3000). Any changes made to the site text will be immediately reflected in the browser.

#### バージョン管理

We employ a versioning system where we have the "latest" documentation AKA "Next Version" which has all the changes that have occurred since the last release. We also keep the last release documentation as well as the version before that.

There isn't usually a reason to update released documentation so we don't generally update the documents in the `versioned_docs` or `versioned_sidebars` directories.

The "next version" docs are mainly in `website/docs` with some "version independent" documents in `src/pages`. Any updates should be made in the `website/docs` directory.

#### 翻訳

The default documents of the Wails project are English documents. We use the "crowdin" tool to translate documents in other languages and synchronize them to the website. You can [join our project](https://crowdin.com/project/wails) and submit your translations to make contributions.

##### Add new language

If you want to add a new language to the documentation, please follow the prompts to [fill in and submit an Issue](https://github.com/wailsapp/wails/issues/new?assignees=&labels=documentation&template=documentation.yml). After being confirmed by the maintainer, we will add the language to the "crowdin" and you will then be able to submit your translation.

### Helping Others

A great way to contribute to the project is to help others who are experiencing difficulty. This is normally reported as a ticket or a message on the Wails discord server. Even just clarifying the issue can really help out. Sometimes, when an issue is discussed and gets resolved, we create a guide out of it to help others who face the same issues.

To join the Wails discord server, click [here](https://discord.gg/JDdSxwjhGf).

:::note

Work In Progress

:::
